package ic.estudocaso.beans;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.CascadeType;
import javax.persistence.ManyToMany;
import javax.persistence.JoinTable;
import javax.persistence.JoinColumn;
import java.util.List;

@Entity
@Table(name="Produto")
public class Produto{
	
	private long idProduto;
	private String Nome;
	private String Marca;
	private double Preco;
	private ItemPedido itemPedido;
	private List<Fornecedor> fornecedores;
	
	@Id
	@GeneratedValue
	@Column(name="idProduto")
	public long getIdProduto(){
		return idProduto;
	}
	
	public void setIdProduto(long idProduto){
		this.idProduto = idProduto;
	}
	
	@Column(name="Nome")
	public String getNome(){
		return Nome;
	}
	
	public void setNome(String Nome){
		this.Nome = Nome;
	}
	
	@Column(name="Marca")
	public String getMarca(){
		return Marca;
	}
	
	public void setMarca(String Marca){
		this.Marca = Marca;
	}
	
	@Column(name="Preco")
	public double getPreco(){
		return Preco;
	}
	
	public void setPreco(double Preco){
		this.Preco = Preco;
	}
	
	@OneToOne
	@PrimaryKeyJoinColumn
	public ItemPedido getItemPedido(){
		return itemPedido;
	}
	
	public void setItemPedido(ItemPedido itemPedido){
		this.itemPedido = itemPedido;
	}
	
	@ManyToMany(cascade=CascadeType.ALL)
	@JoinTable(name="ProdutoFornecedor",joinColumns={@JoinColumn(name="Produto_idProduto")},inverseJoinColumns={@JoinColumn(name="Fornecedor_idFornecedor")})
	public List<Fornecedor> getFornecedores(){
		return fornecedores;
	}
	
	public void setFornecedores(List<Fornecedor> fornecedores){
		this.fornecedores = fornecedores;
	}
	
}
